package com.tansun.easycare.rule.rulegroup.service;

import java.util.List;
import java.util.Map;

import com.tansun.easycare.rule.common.model.RuleSetParamInfo;
import com.tansun.easycare.rule.common.service.impl.RuleBaseServiceImpl;
import com.tansun.easycare.rule.datamodel.entity.RuleDataparams;
import com.tansun.easycare.rule.referencedata.entity.RuleReferenceData;
import com.tansun.easycare.rule.rulegroup.model.ComplexRuleGroup;
import com.tansun.easycare.rule.rulegroup.model.RuleSetExpressVO;
import com.tansun.easycare.rule.rulemange.entity.RuleManage;

public interface RuleParseExpService {
	
	public String parseFact(String factStr,boolean isJavaFunc,RuleBaseServiceImpl<?,?> ruleDrlEvent) throws  Exception;
	
	public String parseFact(List<RuleSetExpressVO> ruleSet,boolean isJavaFunc,RuleBaseServiceImpl<?,?> ruleDrlEvent) throws  Exception;
	
	public String parseAction(List<RuleSetExpressVO> ruleSet, boolean isJavaFunc, RuleBaseServiceImpl<?, ?> ruleDrlEvent) throws Exception;
	
	public String parseAction(String actionStr,boolean isJavaFunc,RuleBaseServiceImpl<?,?> ruleDrlEvent) throws  Exception;
	
    public String parseRuleGroupList(ComplexRuleGroup complexRuleGroup,Map<String, RuleReferenceData> refMap,Map<String,RuleDataparams> funcparamMap,boolean isJavaFunc,RuleBaseServiceImpl<?, ?> ruleDrlEvent) throws Exception;
	
	public  void  transformFactReference(String nodeContion,RuleManage ruleManage,Map<String, RuleReferenceData> map,Map<String,RuleDataparams> funcparamMap);

	public  void  transformFactReference(List<RuleSetExpressVO> ruleSet,RuleManage ruleManage,Map<String, RuleReferenceData> map,Map<String,RuleDataparams> funcparamMap);
	
	List<RuleSetExpressVO> parseFactExpress(String factStr, RuleSetParamInfo newSetParamInfo,RuleSetParamInfo oldParamInfo, boolean setFlag);

}
